#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Times;
namespace Cephei.QL.Experimental.Commodities
{
     
    [Guid ("0EE31AAD-F5D3-43d6-AA5B-F89F2E9F431F"),ComVisible(true)]
	public interface IPaymentTerm 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        // <summary> 
		// ASC:091123 add missing coode
		// </summary>
		 Cephei.QL.Times.ICalendar Calendar {get;}
        
		 Boolean Empty {get;}
        
		 QL.Experimental.Commodities.PaymentTerm.EventTypeEnum EventType {get;}
        
		 DateTime GetPaymentDate(DateTime date);
        
		 String Name {get;}
        
		 Int32 OffsetDays {get;}
    }

    // <summary> 
	//  Factory
	// </summary>
   	[ComVisible(true)]
    public interface IPaymentTerm_Factory // : Collection_Factory<IPaymentTerm, ICell<IPaymentTerm>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    IPaymentTerm Create (String name, QL.Experimental.Commodities.PaymentTerm.EventTypeEnum eventType, Int32 offsetDays, Cephei.QL.Times.ICalendar calendar);
        
	    IPaymentTerm Create ();
    }
}

